<?php

namespace app\common\lib;

use Endroid\QrCode\QrCode as EndroidQrCode;
use Endroid\QrCode\ErrorCorrectionLevel;

class Qrcode
{
    /**
     * 根据URL生成二维码
     *
     * @param string $url
     */
    public static function getUrlQrcode(string $url)
    {
        // 扫描二维码后跳转的地址
        $qrCode = new EndroidQrCode($url);
        // 内容区域宽高,默认为300
        $qrCode->setSize(300);
        // 外边距大小,默认为10
        $qrCode->setMargin(10);
        // 设置编码
        $qrCode->setEncoding('UTF-8');
        // 设置容错等级
        $qrCode->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH());
        // 设置二维码颜色,默认为黑色
        $qrCode->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]);
        // 设置二维码背景色,默认为白色
        $qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]);
        // 启用内置的验证读取器(默认情况下禁用)
        $qrCode->setValidateResult(false);
        // 返回数据URI
        // 
        $dataUri = $qrCode->writeDataUri();
        echo '<img src="' . $dataUri . '">';
    }
}
